/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package src.j2ee.compumake.actions;

import com.opensymphony.xwork2.ActionSupport;
import java.util.ArrayList;
import src.j2ee.compumake.dao.DAOSucursal;
import src.j2ee.compumake.dao.DAOUsuario;
import src.j2ee.compumake.dao.DAOZonas;
import src.j2ee.compumake.dominio.Sucursal;
import src.j2ee.compumake.dominio.Usuario;
import src.j2ee.compumake.dominio.Zona;

/**
 *
 * @author Eric
 */
public class RegistroSucursalAction extends ActionSupport {
    
    @Override
    public String execute() throws Exception {
   
        Sucursal nuevaSucursal = this.getSucursal();

        Zona zona = null;
        DAOZonas daoZonas = new DAOZonas();
        ArrayList<Zona> listaDeZonas = daoZonas.listarZonas();
        
        for(int i=0; i<listaDeZonas.size(); i++){
            if(sucursal.getZona().getNombre().equals(listaDeZonas.get(i).getNombre())){
                zona = listaDeZonas.get(i);
            }
        }
        
        nuevaSucursal.setZona(zona);
        
        Usuario usuario = null;
        DAOUsuario daoUsuario = new DAOUsuario();
        ArrayList<Usuario> listaDeUsuarios = new ArrayList<>();
        listaDeUsuarios = daoUsuario.listarUsuarios();
        
        for(int i=0; i<listaDeUsuarios.size(); i++){
            if(sucursal.getEncargado().getNombreUsuario().equals(listaDeUsuarios.get(i).getNombreUsuario())){
                usuario = listaDeUsuarios.get(i);
            }
        }

        nuevaSucursal.setEncargado(usuario);
        
        DAOSucursal daoSucursal = new DAOSucursal();
        boolean resultadoDeRegistro = daoSucursal.registrarSucursal(nuevaSucursal);
        
        if(resultadoDeRegistro){
            return SUCCESS;
        }
        else{
            addActionError("Error al registrar la sucursal.");
            return INPUT;
        }
    }
    
    @Override
    public void validate() {
        if(this.sucursal.getNombre().isEmpty()){
            addFieldError("sucursal.nombre", "El campo para el nombre de la sucursal no puede estar vacío.");
        }
    }
    
    private Sucursal sucursal;

    public Sucursal getSucursal() {
        return sucursal;
    }

    public void setSucursal(Sucursal sucursal) {
        this.sucursal = sucursal;
    }
}
